package com.heng.controller;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.heng.dao.entity.coupon.CouponTaskDO;
import com.heng.service.CouponTaskService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;

@RestController
@RequestMapping("/api/coupon-tasks")
public class CouponTaskController {

    @Autowired
    private CouponTaskService couponTaskService;

    // 新增发放任务
    @PostMapping
    public boolean addTask(@RequestBody CouponTaskDO taskDO) {
        return couponTaskService.save(taskDO);
    }

    // 删除任务（逻辑删除）
    @DeleteMapping("/{id}")
    public boolean deleteTask(@PathVariable Long id) {
        return couponTaskService.removeById(id);
    }

    // 更新任务状态（如执行中、执行成功、取消）
    @PutMapping
    public boolean updateTask(@RequestBody CouponTaskDO taskDO) {
        return couponTaskService.updateById(taskDO);
    }

    // 按ID查询任务
    @GetMapping("/{id}")
    public CouponTaskDO getTaskById(@PathVariable Long id) {
        return couponTaskService.getById(id);
    }

    // 按店铺编号查询任务
    @GetMapping("/shop/{shopNumber}")
    public List<CouponTaskDO> getByShopNumber(@PathVariable Long shopNumber) {
        return couponTaskService.getByShopNumber(shopNumber);
    }

    // 按任务状态查询（0：待执行 1：执行中 2：执行失败 3：执行成功 4：取消）
    @GetMapping("/status/{status}")
    public List<CouponTaskDO> getByStatus(@PathVariable Integer status) {
        return couponTaskService.getByStatus(status);
    }

    // 分页查询任务
    @GetMapping("/page")
    public IPage<CouponTaskDO> pageQuery(
            @RequestParam(defaultValue = "1") Integer pageNum,
            @RequestParam(defaultValue = "10") Integer pageSize) {
        return couponTaskService.pageQuery(pageNum, pageSize);
    }
}